Displaying three-dimensional virtual content

ABSTRACT

A computing device can determine its position relative to a reference point. The device can render a portion of content too large to be suitably displayed in full on a display of the device. The device can render the content in full to appear (i.e., can virtually position the entire content) to be located in a stationary position relative to the reference point. The device can detect a change to its position, such as a movement of the device caused by a user of the device. Based on the detected change to the device&#39;s position, the device can modify which portion of the entire content to render. The rendered portion of the entire content can change corresponding to where and how the device moves.

BACKGROUND

Computing devices are becoming more commonplace and are used for a widevariety of purposes. Every day, people use applications on theircomputing devices to view, access, and/or interact with various types ofcontent, especially as mobile computing devices and applications aregrowing in number and in function. A user of a computing device canutilize the computing device to view webpages, view images, play games,participate in educational programs, and to perform other tasks. In somecases, applications can render content to be displayed on a displayscreen of the computing device. However, content that is static or lessinteractive, such as an image or text, can be boring to view,manipulate, or otherwise utilize. An improved approach to providingcontent on computing devices can be beneficial and can enhance theoverall user experience associated with using computing devices tointeract with content.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments in accordance with the present disclosure will bedescribed with reference to the drawings, in which:

FIG. 1 illustrates an example environment in which aspects of thevarious embodiments can be utilized;

FIG. 2 illustrates an example device embodiment for displayingthree-dimensional virtual content;

FIG. 3 illustrates an example device embodiment for displayingthree-dimensional virtual content;

FIG. 4 illustrates an example device embodiment for displayingthree-dimensional virtual content;

FIG. 5A illustrates an example method embodiment for displayingthree-dimensional virtual content;

FIG. 5B illustrates an example method embodiment for displayingthree-dimensional virtual content;

FIG. 6 illustrates an example method embodiment for displayingthree-dimensional virtual content;

FIG. 7 illustrates an example device that can be used to implementaspects of the various embodiments;

FIG. 8 illustrates example components of a client device such as thatillustrated in FIG. 7; and

FIG. 9 illustrates an environment in which various embodiments can beimplemented.

DETAILED DESCRIPTION

Systems and methods in accordance with various embodiments of thepresent disclosure overcome one or more of the above-referenced andother deficiencies in conventional approaches to interacting withcontent provided by a computing device. In particular, variousembodiments of the present disclosure can provide an approach todisplaying three-dimensional virtual content via a computing devicebased, at least in part, on detecting one or more movements of thecomputing device and/or movements of a user who is using the computingdevice.

At least some embodiments enable a computing device to generate avirtual environment. The virtual environment can be displayed inthree-dimensions on a display of the computing device. As the computingdevice is moved around, such as by a user of the device, the virtualenvironment can be displayed to appear stationary with respect to one ormore reference points. As such, the user can utilize the computingdevice to generate, display, interact with the virtual environment for awide variety of purposes including (but not limited to) purposes ofeducation, entertainment, and communication.

In some embodiments, the computing device can use one or more sensors tocapture information about a reference point. In some cases, the devicecan use a camera to capture images including the reference point. Thereference point can be, for example, a physical object in a physicalenvironment (including a portion of the physical environment) in whichthe computing device is situated. In one example, a portion of aphysical floor in the physical environment of the device can be used asa reference point. The computing device can determine its positionrelative to the reference point using the one or more sensors. Thecomputing device can also determine a change to its position relative tothe reference point using the one or more sensors. For example, if thedevice is moved by the user, the camera can capture images including thereference point and compare the images with previously captured imagesof the reference point to determine how the device has changed itsposition relative to the reference point. The virtual environment can bedisplayed to appear stationary with respect to the reference point. Whenthe device moves, the displaying of the virtual environment can bemodified such that the virtual environment appears to remain stationaryrelative to the reference point during the movement of the device.

Moreover, in some embodiments, the user of the computing device canchange his head position relative to the computing device. Using the oneor more sensors, such as at least one front-facing camera, the computingdevice can determine or track the change in the user's head position.Based on the change in the user's head position, the displaying of thevirtual environment can be modified such that the virtual environmentcan appear to remain stationary relative to the reference point when theuser changes his head position.

Furthermore, the present disclosure can enable one or more computingdevices to communicate amongst one another to run one or moreinterconnected virtual environments or to operate multiple separatevirtual environments. Various other functions and advantages aredescribed and suggested below as may be provided in accordance with thevarious embodiments.

FIG. 1 illustrates an example environment 100 in which aspects of thevarious embodiments can be utilized. The example environment 100 cancomprise a computing device 102, which can include one or more sensors.For example, the one or more sensors can include one or more cameras,such as at least one rear-facing camera 104 and/or at least onefront-facing camera 106. The one or more sensors can also include atouch sensor, which can work in conjunction with a display 108 (e.g.,forming a touch display). The computing device 102 can further includeone or more geolocation sensors 110, orientation sensors 112, lightsensors, audio sensors, etc. In some embodiments, the one or moregeolocation sensors 110 can include a global positioning system (GPS)sensor and/or a radio signal multilateration sensor (e.g., configuredfor cellular triangulation), etc. In some embodiments, the one or moreorientation sensors 112 can include a gyroscope, an accelerometer, amagnetometer, and/or an electric compass, etc.

Various embodiments of the present disclosure enable the computingdevice 102 to generate and present, via the display 108, a virtualenvironment 120. In some embodiments, the virtual environment 120 caninclude one or more virtual objects 122. The virtual environment 120, aswell as any virtual objects (e.g., 122) included, can be rendered toappear in three dimensions on the display 108, thereby resulting in athree-dimensional virtual environment (e.g., 120) and three-dimensionalvirtual objects (e.g., 122).

The virtual environment 120 (and any included virtual objects, e.g.,122) can be generated to appear different from the actual, physicalenvironment 130 in which the computing device 102 is situated. In someembodiments, virtual environments can be generated, at least in part,from one or more scanned images of physical environments, such as famouslandmarks, renowned architectural works, etc. In some embodiments,virtual environments can be generated, at least in part, from one ormore models of imaginary environments created by artists and other modelmakers. It is also contemplated that any combination of representationsof physical environments and/or imaginary environments can be utilizedto create virtual environments.

For example, as shown in FIG. 1, the computing device 102 can bephysically and actually situated in an empty room with blank walls(130). However, in the example, the virtual environment 120 displayed onthe device 102 can correspond to a room or environment different fromthe physical environment 130 in which the device 102 is actuallysituated. Moreover, as shown in the example of FIG. 1, the empty room130 does not actually contain any objects or items. Yet the displayedvirtual environment 120 can include one or more virtual objects, such asa flower pot 122, as shown on the display screen 108 of the computingdevice 102.

In some embodiments, the virtual environment 120 displayed on thecomputing device 102 can be “fixed” to a reference point. In otherwords, the virtual environment 120 can be displayed on the device 102 toappear as if the virtual environment 120 can remain stationary relativeto the reference point. Accordingly, when the device 102 is moved, suchas by a user 140 of the device 102, the displayed view or perspective ofthe virtual environment 120 can be modified to make the virtualenvironment 120 appear stationary with respect to the reference pointduring the move. It is also contemplated that there can be a pluralityof reference points. In some cases, the virtual environment 120 can bedisplayed to appear stationary with respect to multiple referencepoints.

In some embodiments, a reference point can include any physical objectin the physical environment (e.g., 130) in which the computing device102 is situated or at least a portion of the physical environment (e.g.,130). For example, a ground or floor, a wall, a ceiling, or anotherphysical object or portion of the physical environment can each serve asa reference point. In some cases, patterns, markings, and/or otheridentifiable portions of a physical object can be used as referencepoints. In one example, a special or unique textural pattern found on awall can serve as a reference point.

Furthermore, a convenient approach can be to set (a portion of) thefloor or ground of the physical environment 130 to be a reference point.For example, the virtual environment 120 can be displayed such that thefloor or ground of the virtual environment 120 corresponds to the flooror ground of the physical environment 130.

In order to set the reference point(s), the computing device 102 canutilize its one or more sensors to capture information about thereference point(s). In one example, at least one rear-facing camera 104of the device 102 can be utilized to capture one or more images. Thereference point, such as a wall, floor, or another physical object, canbe included in the captured images. From the captured images, areference point can be selected and a position of the reference pointcan be determined. Further, based on the position of the reference pointin the images and/or the current location/orientation of the device 102,a relative position of the device 102 with respect to the referencepoint can be determined as well. Moreover, when the position of thedevice 102 changes, images including the position of the reference pointcan be captured again (and/or orientation/location information about thedevice 102 can be updated) and the change to the relative position ofthe device 102 can be determined. Based, at least in part, on theposition of the reference point and/or the change in relative positionof the device 102, a determination can be made as to how to display thevirtual environment 102 such that the virtual environment 102 appears toremain stationary with respect to the reference point when the device102 changes its position.

Additionally or alternatively, at least one front-facing camera 106 ofthe device 102 can be utilized as well. For example, the at least onefront-facing camera 106 can also capture images including a referencepoint(s) such that a change to the relative position of the device 102can be determined (e.g., based on the reference point position(s) in thecaptured images and/or orientation/location information about the device102). In another example, the at least one front-facing camera 106 canbe used to determined and/or track changes in a head position of theuser 140. As such, if the device 102 is kept stationary, but the user'shead position changes, the displaying of the virtual environment 120 canbe modified such that the environment 120 still appears stationaryrelative to the reference point(s) while the user 140 changes his headposition. It also follows that, based on the changes in the headposition of the user 140 and/or on changes to the relative position ofthe device 102, the virtual environment 120 can be displayed to appearstationary on the display 108 with respect to the reference point(s)when the device 102 is moved and/or when the user 140 moves his headrelative to the device 102.

Furthermore, in some embodiments, the reference point can be a position,orientation, and/or location of the computing device 102 relative toabsolute space. For example, the reference point can correspond to acombination of the current GPS coordinates of the device 102 and thecurrent directions or degree angles in which the device 102 is turned(relative to a device vertical axis), tilted (relative to a devicehorizontal axis), and twisted (relative to a device depth axis).

In one example, the user 140 can choose to download (e.g., through apurchase) a particular virtual environment from a plurality of virtualenvironments. The virtual environments can be created by softwaredevelopers, artists, or other entities. Some virtual environments can beeducational, such as a virtual museum environment or a virtualhistorical site. Some virtual environments can be for entertainmentpurposes, such as a virtual tourist attraction or a virtual sportsarena. A person having ordinary skill in the art would recognize varioususes and/or purposes for virtual environments within the scope of thepresent disclosure.

Referring now to FIG. 2, an example device embodiment 202 for displayingthree-dimensional virtual content is illustrated. In FIG. 2, the examplecomputing device embodiment 202 is shown at four different positions(i.e., locations, and/or orientations, etc.). The four example positionsof the computing device 202 attempt to illustrate various movements thatcan occur with respect to the device 202. For example, a user (not shownin FIG. 2) of the computing device 202 can move the device 202 from oneposition to another, back again, and so forth.

In the example of FIG. 2, the physical and actual environment 210 inwhich the device 202 is situated can be an empty room with blank walls.A virtual environment 220 can be generated and displayed on thecomputing device 202. The (three-dimensional) virtual environment 220can also include a (three-dimensional) virtual object 222. As shown inthe example of FIG. 2, the virtual environment 220, as well as thevirtual object 222, can be displayed to appear stationary with respectto a reference point.

In one example, the floor 212 of the empty room 210 can be used as areference point and can be “synced” to the floor 224 of the virtualenvironment 220. As such, the user of the device 202 can hold the device202, walk around the room 210, and move his device 202 to “explore” thevirtual environment 220 (i.e., to see different views or perspectives ofthe virtual environment 220 and virtual object 222, to view the virtualenvironment 220 and virtual object 222 from various angles andviewpoints, etc.). Since the floor 212 of the room 210 is synced withthe floor 224 of the virtual environment 220, the virtual object 222 onthe virtual floor 224 can be displayed on the device 220 to appear as ifthe object 222 were sitting on the physical floor 212 of the empty room210.

Continuing with the example, as shown in FIG. 2, when the user moves thedevice 202 to the left lower area in the front of the room 210 (i.e., asshown in the left bottom position of device 202 in FIG. 2), the user cansee the left lower area of the front side of the virtual object 222 (andof the virtual environment 220). Similarly, the user can see the rightlower area of the front of the virtual object 222 (and environment 220)when he moves the device 202 to the right lower area in the front of theroom 210 (i.e., right bottom position of device 202 in FIG. 2).Likewise, the user can see the left upper area of the front of thevirtual object 222 when he moves the device 202 to the left upper areain the front of the room 210 (i.e., left top position of device 202 inFIG. 2). It also follows that the user can see the right upper area ofthe front of the virtual object 222 when he moves the device 202 to theright upper area in the front of the room 210 (i.e., right top positionof device 202 in FIG. 2).

Moreover, although not shown in FIG. 2, if the user walks to the back(e.g., 214) of the room 210 and turns his device 202 such that thedisplay of the device 202 is facing toward the back wall (e.g., 214) ofthe room 210, the user should be able to view the back side of thevirtual object 222.

FIG. 3 illustrates an example device embodiment 302 for displayingthree-dimensional virtual content. In the example of FIG. 3, thecomputing device embodiment 302 can be configured to display a virtualenvironment in the form of a room in a medieval castle 320. This virtualenvironment 320 can not only be used for educational purposes to teachhistory, literature, art, etc., but the virtual medieval castle room 320can also be used for entertainment (e.g., to function as an environmentfor playing games) and other purposes.

In this example, the physical environment 310 of the computing device302 can be a large, open field. The walls, ceilings, or boundaries otherthan the ground of the open field 310 are outside the field(s) of viewof the camera(s) of the device 302. In this example, the virtualmedieval castle room 320 can be displayed to appear stationary withrespect to a portion of the field's floor. In other words, (a portionof) the floor of the open field 310 can serve as a reference point fordisplaying the virtual medieval castle room 320 and keeping the room 320stationary.

Continuing with the example, it is important to note that the virtualcastle room 320 can include walls and/or other objects that are virtualand not present in the physical environment 310. In FIG. 3, the virtualcastle room 320 can include a virtual back wall 322 made of stone, whichhas no corresponding counterpart in the physical open field 310. Therecan also be a left wall 324 in the virtual room 320 that does not existin the open field 310. Moreover, one or more other virtual objects, suchas a wall decoration 326, can be included in the virtual environment320, but not in the physical environment 310 in which the device 302 isactually situated. As such, in some cases, virtual environments can begenerated independent of the layout of the physical environments inwhich computing devices are situated.

In some embodiments, when a user (not shown in FIG. 3) of the device 302is exploring or otherwise interacting with the virtual environment 320,the user can encounter a physical object (e.g., a chair) 312 in thephysical environment 310 that is not initially present or not originallydesigned to be present in the virtual environment 320. As such, the usercan accidentally or unintentionally bump into the physical object 312,for example, if he is too engaged with the virtual environment 320 anddoes not see the physical object 312.

To address this potential issue, the computing device 302 can detect thephysical object 312 (e.g., using a rear-facing camera in conjunctionwith image processing, edge detection, feature detection, objectrecognition, face recognition, etc.) and display a virtualrepresentation 328 of the physical chair 312, such that the virtualrepresentation 328 is present at a location in the virtual environment320 corresponding to the location of the physical chair 312 in thephysical environment 310. In some embodiments, the virtualrepresentation 328 can be generated to match a context (e.g., style,theme, time period, etc.) of the virtual environment 320. In FIG. 3, thevirtual chair 328, generated for the physical chair 312, can be amedieval castle chair to match the virtual medieval castle room 320. Assuch, the user will be less likely to unintentionally walk or bump intothe physical chair 312 because the user can notice the virtual castlechair 328 at a location in the virtual castle room 320 corresponding tothe location of the physical chair 310 in the open field 310. Moreover,in some embodiments, the virtual representation for the physical objectdoes not necessarily have to be similar to the physical object. Forexample, regarding the physical chair 312, the virtual representation inthe virtual castle room 320 does not have to be a chair as well, but caninstead be a statue, a suit of armor, or some other item.

FIG. 4 illustrates an example device embodiment 402 for displayingthree-dimensional virtual content. In some embodiments, the examplecomputing device 402 can communicate with at least one other computingdevice (e.g., 412) and work in conjunction to cooperatively run avirtual environment 420, as shown in FIG. 4. For example, the computingdevice 402 can receive information about at least one second computingdevice (e.g., 412). The information can indicate at least one of aposition of the second computing device 412 relative to the computingdevice 402, a position of the second computing device relative to thevirtual environment 420, a position of a user (e.g., 414) of the secondcomputing device relative to the second computing device, a preference,related to the virtual environment, of the user 414 of the secondcomputing device, or other information.

In some embodiments, the computing devices 402 and 412 can work inconjunction to set a position of the virtual environment 420 relative toboth computing devices. As such, the virtual environment 420 can appearto remain stationary as display on both devices 402 and 412. In someembodiments, the setting of the position can be based, at least in part,on the position of a first computing device (e.g., 402), one or morereference points, and at least one of the position of a second computingdevice (e.g., 412) relative to the first computing device, the positionof the first computing device relative to the virtual environment, orthe position of the second computing device relative to the virtualenvironment.

In some embodiments, device 402 and device 412 can be running separate(e.g., different) virtual environments. As such, the devices cancommunicate with one another to ensure that the virtual environment oneach respective device does not interfere with the other. For example,the devices can communicate to manage the areas each respective user canexplore such that the users do not bump into each other.

As discussed with reference to FIG. 3, a virtual representation (e.g.,book 422) can be generated in the virtual environment 420 to correspondto computing device 412. Moreover, in some embodiments, a user (e.g.,414) of computing device 412, or another living entity (not shown inFIG. 4, e.g., a pet), can constitute a physical object that was notinitially present or originally intended to be present in the virtualenvironment 420 displayed on computing device 402. As such, a virtualrepresentation can be generated for the user 414 or other living entity.In some cases, the virtual representation can include an avatar 424associated with the user 414 or other living entity. In one example, thevirtual environment 420 can implement a policy specifying that all otherhuman entities detected are to be virtually represented as knights. Inanother example, the user 414 can set a preference that she prefers hervirtual representation to be generated as a knight avatar 424, as shownin FIG. 4. In some embodiments, using at least in part a camera andimage processing techniques, the virtual representation for theuser/entity can be displayed to mimic the actual user/entity andhis/her/its actions.

In some embodiments, it is not necessary for the user 414 or otherliving entity to be using a computing device (e.g., 412). In otherwords, a virtual representation (e.g., avatar) for the living entity canbe generated even if the entity is not using a computing device.

FIG. 5A illustrates an example method embodiment 500 for displayingthree-dimensional virtual content. It should be understood that therecan be additional, fewer, or alternative steps performed in similar oralternative orders, or in parallel, within the scope of the variousembodiments unless otherwise stated. The example method embodiment 500can start, at step 502, with capturing one or more images using at leastone camera of the computing device. The one or more images can includeinformation about a position of at least one physical object in anenvironment of the computing device. Step 504 can include determining arelative position of the computing device with respect to the positionof the at least one physical object.

At step 506, the method 500 can display a first perspective of athree-dimensional virtual environment. The first perspective can bebased, at least in part, on the relative position of the computingdevice with respect to the position of the at least one physical object.The method 500 can detect a change in the relative position of thecomputing device with respect to the at least one physical object, atstep 508. The change can result at least in part from movement of thecomputing device. Step 510 can include displaying at least a secondperspective of the three-dimensional virtual environment. The secondperspective can be displayed to cause the virtual environment to appearto remain stationary in space, within an allowable deviation, withrespect to the position of at least one physical object during thechange in the relative position of the computing device.

FIG. 5B illustrates an example method embodiment 550 for displayingthree-dimensional virtual content. As mentioned above, it should beunderstood that there can be additional, fewer, or alternative stepsperformed in similar or alternative orders, or in parallel, within thescope of the various embodiments unless otherwise stated. At step 552,the example method embodiment 550 can start with determining a positionof a computing device relative to a reference point using one or moresensors of the computing device. Step 554 can include displaying a viewof a virtual environment. The view can be based, at least in part, onthe position of the computing device relative to the reference point.Step 556 can include detecting, using the one or more sensors of thecomputing device, a change in the position of the computing devicerelative to the reference point.

At step 558, the method 550 can modify the view of the virtualenvironment based, at least in part, on the detecting of the change inthe position of the computing device. The view can be modified to causethe virtual environment to appear stationary, within an allowabledeviation, with respect to the reference point during the change in theposition of the computing device. Step 560 can include displaying themodified view of the virtual environment during the change in theposition of the computing device.

FIG. 6 illustrates an example method embodiment 600 for displayingthree-dimensional virtual content. Again, it should be understood thatthere can be additional, fewer, or alternative steps performed insimilar or alternative orders, or in parallel, within the scope of thevarious embodiments unless otherwise stated. At step 602, the examplemethod embodiment 600 can determine a position of a computing devicerelative to a reference point using one or more sensors of the computingdevice. Step 604 can include displaying a view of a virtual environment.The view can be based, at least in part, on the position of thecomputing device relative to the reference point. Step 606 can includedetermining a change in a head position of a user of the computingdevice using at least one camera included in the one or more sensors ofthe computing device.

At step 608, the method 600 can modify the view of the virtualenvironment based, at least in part, on the determining of the change inthe head position of the user. The view can be modified to cause thevirtual environment to appear stationary, within an allowable deviation,with respect to the reference point during the change in the headposition of the user. The method 600 can display the modified view ofthe virtual environment during the change in the head position of theuser, at step 610.

In some embodiments, virtual environments can be downloaded from aninformation source. For example, virtual environments can be downloadedfrom a networked storage service. In another example, a user can selectvirtual environments to purchase from an electronic marketplace. In afurther example, virtual environments can be stored and accessed from amemory device, such as a portable flash drive, a computing device harddisk, etc.

In some embodiments, data representing a virtual environment can bedownloaded as needed. In other words, data representing a virtualenvironment can be streamed to a user's computing device as he isinteracting with (e.g., walking through) the virtual environment. Insome embodiments, there can be a cache or a buffer for storing virtualenvironment data that will likely be used soon. In some embodiments,predictions can be made as to which portions of virtual environment datawill be needed soon.

In some embodiments, the modifying of the view of the virtualenvironment can further comprise blurring, at least partially, the viewof the virtual environment when a confidence score associated with thedetecting of the change of the position of the device and/or the headposition of the user is below a confidence threshold. For example, ifthe device is unsure about the detecting of the change (e.g., cannotdetermine the change) to the device position and/or the user's headposition, the display of the virtual environment can be blurred.

In some embodiments, the computing device can receive, from aninformation source such as a memory device or a network server, datarepresentative of a physical environment in which the computing deviceis situated (e.g., currently situated, previously situated, etc.). Thedata can be analyzed to generate a virtual representation for at least aportion of the physical environment. In one example, the device canreceive, from an online mapping service, data representing at least aportion of a map showing an area in which the device is located. Avirtual representation of the area, as well as any physical objectsincluded in the area, can be generated based, at least in part, on thedata. The virtual representation of the area can correspond to thevirtual environment.

In some embodiments, the computing device can determine that thedisplaying of the view of the virtual environment has occurred for atime period exceeding a specified time period threshold. In response,the device can disable (e.g., terminate, pause, lock out, minimize,etc.) the displaying of the view of the virtual environment. Forexample, a parent can enable an option for an automatic time-out of thevirtual environment, such that the parent's child does not use, play, orotherwise interact with the virtual environment for longer than desiredby the parent. In some cases, the user of the computing device canenable the automatic disabling of the virtual environment after aspecified time period to prevent the user from spending too much timeplaying or otherwise interacting with the virtual environment.

Various embodiments consistent with the present disclosure can also beimplemented for a zoom function. For example, the computing device canzoom in with respect to the view of the virtual environment beingdisplayed when the change in the user's head position is determined tobe directed toward a front face of the computing device, or thecomputing device can zoom out with respect to the view of the virtualenvironment being displayed when the change in the head position isdetermined to be directed away from the front face of the computingdevice. In some cases, the zoom function can be toggled (on and off) viaa switch or instruction.

It is further contemplated that there can be many other uses and/orapplications associated with the various embodiments of the presentdisclosure that a person having ordinary skill in the art wouldrecognize.

FIG. 7 illustrates an example electronic user device 700 that can beused in accordance with various embodiments. Although a portablecomputing device (e.g., an electronic book reader or tablet computer) isshown, it should be understood that any electronic device capable ofreceiving, determining, and/or processing input can be used inaccordance with various embodiments discussed herein, where the devicescan include, for example, desktop computers, notebook computers,personal data assistants, smart phones, video gaming consoles,television set top boxes, and portable media players. In someembodiments, a computing device can be an analog device, such as adevice that can perform signal processing using operational amplifiers.In this example, the computing device 700 has a display screen 702 onthe front side, which under normal operation will display information toa user facing the display screen (e.g., on the same side of thecomputing device as the display screen). The computing device in thisexample includes at least one camera 704 or other imaging element forcapturing still or video image information over at least a field of viewof the at least one camera. In some embodiments, the computing devicemight only contain one imaging element, and in other embodiments thecomputing device might contain several imaging elements. Each imagecapture element may be, for example, a camera, a charge-coupled device(CCD), a motion detection sensor, or an infrared sensor, among manyother possibilities. If there are multiple image capture elements on thecomputing device, the image capture elements may be of different types.In some embodiments, at least one imaging element can include at leastone wide-angle optical element, such as a fish eye lens, that enablesthe camera to capture images over a wide range of angles, such as 180degrees or more. Further, each image capture element can comprise adigital still camera, configured to capture subsequent frames in rapidsuccession, or a video camera able to capture streaming video.

The example computing device 700 also includes at least one microphone706 or other audio capture device capable of capturing audio data, suchas words or commands spoken by a user of the device. In this example, amicrophone 706 is placed on the same side of the device as the displayscreen 702, such that the microphone will typically be better able tocapture words spoken by a user of the device. In at least someembodiments, a microphone can be a directional microphone that capturessound information from substantially directly in front of themicrophone, and picks up only a limited amount of sound from otherdirections. It should be understood that a microphone might be locatedon any appropriate surface of any region, face, or edge of the device indifferent embodiments, and that multiple microphones can be used foraudio recording and filtering purposes, etc.

The example computing device 700 also includes at least one orientationsensor 708, such as a position and/or movement-determining element. Sucha sensor can include, for example, an accelerometer or gyroscopeoperable to detect an orientation and/or change in orientation of thecomputing device, as well as small movements of the device. Anorientation sensor also can include an electronic or digital compass,which can indicate a direction (e.g., north or south) in which thedevice is determined to be pointing (e.g., with respect to a primaryaxis or other such aspect). An orientation sensor also can include orcomprise a global positioning system (GPS) or similar positioningelement operable to determine relative coordinates for a position of thecomputing device, as well as information about relatively largemovements of the device. Various embodiments can include one or moresuch elements in any appropriate combination. As should be understood,the algorithms or mechanisms used for determining relative position,orientation, and/or movement can depend at least in part upon theselection of elements available to the device.

FIG. 8 illustrates a logical arrangement of a set of general componentsof an example computing device 800 such as the device 700 described withrespect to FIG. 7. In this example, the device includes a processor 802for executing instructions that can be stored in a memory device orelement 804. As would be apparent to one of ordinary skill in the art,the device can include many types of memory, data storage, ornon-transitory computer-readable storage media, such as a first datastorage for program instructions for execution by the processor 802, aseparate storage for images or data, a removable memory for sharinginformation with other devices, etc. The device typically will includesome type of display element 806, such as a touch screen or liquidcrystal display (LCD), although devices such as portable media playersmight convey information via other means, such as through audiospeakers. As discussed, the device in many embodiments will include atleast one image capture element 808 such as a camera or infrared sensorthat is able to image projected images or other objects in the vicinityof the device. Methods for capturing images or video using a cameraelement with a computing device are well known in the art and will notbe discussed herein in detail. It should be understood that imagecapture can be performed using a single image, multiple images, periodicimaging, continuous image capturing, image streaming, etc. Further, adevice can include the ability to start and/or stop image capture, suchas when receiving a command from a user, application, or other device.The example device similarly includes at least one audio capturecomponent 812, such as a mono or stereo microphone or microphone array,operable to capture audio information from at least one primarydirection. A microphone can be a uni- or omni-directional microphone asknown for such devices.

In some embodiments, the computing device 800 of FIG. 8 can include oneor more communication elements (not shown), such as a Wi-Fi, Bluetooth,RF, wired, or wireless communication system. The device in manyembodiments can communicate with a network, such as the Internet, andmay be able to communicate with other such devices. In some embodimentsthe device can include at least one additional input device able toreceive conventional input from a user. This conventional input caninclude, for example, a push button, touch pad, touch screen, wheel,joystick, keyboard, mouse, keypad, or any other such device or elementwhereby a user can input a command to the device. In some embodiments,however, such a device might not include any buttons at all, and mightbe controlled only through a combination of visual and audio commands,such that a user can control the device without having to be in contactwith the device.

The device 800 also can include at least one orientation or motionsensor 810. As discussed, such a sensor can include an accelerometer orgyroscope operable to detect an orientation and/or change inorientation, or an electronic or digital compass, which can indicate adirection in which the device is determined to be facing. Themechanism(s) also (or alternatively) can include or comprise a globalpositioning system (GPS) or similar positioning element operable todetermine relative coordinates for a position of the computing device,as well as information about relatively large movements of the device.The device can include other elements as well, such as may enablelocation determinations through triangulation or another such approach.These mechanisms can communicate with the processor 802, whereby thedevice can perform any of a number of actions described or suggestedherein.

As an example, a computing device such as that described with respect toFIG. 7 can capture and/or track various information for a user overtime. This information can include any appropriate information, such aslocation, actions (e.g., sending a message or creating a document), userbehavior (e.g., how often a user performs a task, the amount of time auser spends on a task, the ways in which a user navigates through aninterface, etc.), user preferences (e.g., how a user likes to receiveinformation), open applications, submitted requests, received calls, andthe like. As discussed above, the information can be stored in such away that the information is linked or otherwise associated whereby auser can access the information using any appropriate dimension or groupof dimensions.

As discussed, different approaches can be implemented in variousenvironments in accordance with the described embodiments. For example,FIG. 9 illustrates an example of an environment 900 for implementingaspects in accordance with various embodiments. As will be appreciated,although a Web-based environment is used for purposes of explanation,different environments may be used, as appropriate, to implement variousembodiments. The system includes an electronic client device 902, whichcan include any appropriate device operable to send and receiverequests, messages or information over an appropriate network 904 andconvey information back to a user of the device. Examples of such clientdevices include personal computers, cell phones, handheld messagingdevices, laptop computers, set-top boxes, personal data assistants,electronic book readers and the like. The network can include anyappropriate network, including an intranet, the Internet, a cellularnetwork, a local area network or any other such network or combinationthereof. Components used for such a system can depend at least in partupon the type of network and/or environment selected. Protocols andcomponents for communicating via such a network are well known and willnot be discussed herein in detail. Communication over the network can beenabled via wired or wireless connections and combinations thereof. Inthis example, the network includes the Internet, as the environmentincludes a Web server 906 for receiving requests and serving content inresponse thereto, although for other networks an alternative deviceserving a similar purpose could be used, as would be apparent to one ofordinary skill in the art.

The illustrative environment includes at least one application server908 and a data store 910. It should be understood that there can beseveral application servers, layers or other elements, processes orcomponents, which may be chained or otherwise configured, which caninteract to perform tasks such as obtaining data from an appropriatedata store. As used herein the term “data store” refers to any device orcombination of devices capable of storing, accessing and retrievingdata, which may include any combination and number of data servers,databases, data storage devices and data storage media, in any standard,distributed or clustered environment. The application server can includeany appropriate hardware and software for integrating with the datastore as needed to execute aspects of one or more applications for theclient device and handling a majority of the data access and businesslogic for an application. The application server provides access controlservices in cooperation with the data store and is able to generatecontent such as text, graphics, audio and/or video to be transferred tothe user, which may be served to the user by the Web server in the formof HTML, XML or another appropriate structured language in this example.The handling of all requests and responses, as well as the delivery ofcontent between the client device 902 and the application server 908,can be handled by the Web server 906. It should be understood that theWeb and application servers are not required and are merely examplecomponents, as structured code discussed herein can be executed on anyappropriate device or host machine as discussed elsewhere herein.

The data store 910 can include several separate data tables, databasesor other data storage mechanisms and media for storing data relating toa particular aspect. For example, the data store illustrated includesmechanisms for storing production data 912 and user information 916,which can be used to serve content for the production side. The datastore also is shown to include a mechanism for storing log or sessiondata 914. It should be understood that there can be many other aspectsthat may need to be stored in the data store, such as page imageinformation and access rights information, which can be stored in any ofthe above listed mechanisms as appropriate or in additional mechanismsin the data store 910. The data store 910 is operable, through logicassociated therewith, to receive instructions from the applicationserver 908 and obtain, update or otherwise process data in responsethereto. In one example, a user might submit a search request for acertain type of element. In this case, the data store might access theuser information to verify the identity of the user and can access thecatalog detail information to obtain information about elements of thattype. The information can then be returned to the user, such as in aresults listing on a Web page that the user is able to view via abrowser on the user device 902. Information for a particular element ofinterest can be viewed in a dedicated page or window of the browser.

Each server typically will include an operating system that providesexecutable program instructions for the general administration andoperation of that server and typically will include computer-readablemedium storing instructions that, when executed by a processor of theserver, allow the server to perform its intended functions. Suitableimplementations for the operating system and general functionality ofthe servers are known or commercially available and are readilyimplemented by persons having ordinary skill in the art, particularly inlight of the disclosure herein.

The environment in one embodiment is a distributed computing environmentutilizing several computer systems and components that areinterconnected via communication links, using one or more computernetworks or direct connections. However, it will be appreciated by thoseof ordinary skill in the art that such a system could operate equallywell in a system having fewer or a greater number of components than areillustrated in FIG. 9. Thus, the depiction of the system 900 in FIG. 9should be taken as being illustrative in nature and not limiting to thescope of the disclosure.

As discussed above, the various embodiments can be implemented in a widevariety of operating environments, which in some cases can include oneor more user computers, computing devices, or processing devices whichcan be used to operate any of a number of applications. User or clientdevices can include any of a number of general purpose personalcomputers, such as desktop or laptop computers running a standardoperating system, as well as cellular, wireless, and handheld devicesrunning mobile software and capable of supporting a number of networkingand messaging protocols. Such a system also can include a number ofworkstations running any of a variety of commercially-availableoperating systems and other known applications for purposes such asdevelopment and database management. These devices also can includeother electronic devices, such as dummy terminals, thin-clients, gamingsystems, and other devices capable of communicating via a network.

Various aspects also can be implemented as part of at least one serviceor Web service, such as may be part of a service-oriented architecture.Services such as Web services can communicate using any appropriate typeof messaging, such as by using messages in extensible markup language(XML) format and exchanged using an appropriate protocol such as SOAP(derived from the “Simple Object Access Protocol”). Processes providedor executed by such services can be written in any appropriate language,such as the Web Services Description Language (WSDL). Using a languagesuch as WSDL allows for functionality such as the automated generationof client-side code in various SOAP frameworks.

Most embodiments utilize at least one network that would be familiar tothose skilled in the art for supporting communications using any of avariety of commercially-available protocols, such as TCP/IP, OSI, FTP,UPnP, NFS, CIFS, and AppleTalk. The network can be, for example, a localarea network, a wide-area network, a virtual private network, theInternet, an intranet, an extranet, a public switched telephone network,an infrared network, a wireless network, and any combination thereof.

In embodiments utilizing a Web server, the Web server can run any of avariety of server or mid-tier applications, including HTTP servers, FTPservers, CGI servers, data servers, Java servers, and businessapplication servers. The server(s) also may be capable of executingprograms or scripts in response requests from user devices, such as byexecuting one or more Web applications that may be implemented as one ormore scripts or programs written in any programming language, such asJava®, C, C# or C++, or any scripting language, such as Perl, Python, orTCL, as well as combinations thereof. The server(s) may also includedatabase servers, including without limitation those commerciallyavailable from Oracle®, Microsoft®, Sybase®, and IBM®.

The environment can include a variety of data stores and other memoryand storage media as discussed above. These can reside in a variety oflocations, such as on a storage medium local to (and/or resident in) oneor more of the computers or remote from any or all of the computersacross the network. In a particular set of embodiments, the informationmay reside in a storage-area network (“SAN”) familiar to those skilledin the art. Similarly, any necessary files for performing the functionsattributed to the computers, servers, or other network devices may bestored locally and/or remotely, as appropriate. Where a system includescomputerized devices, each such device can include hardware elementsthat may be electrically coupled via a bus, the elements including, forexample, at least one central processing unit (CPU), at least one inputdevice (e.g., a mouse, keyboard, controller, touch screen, or keypad),and at least one output device (e.g., a display device, printer, orspeaker). Such a system may also include one or more storage devices,such as disk drives, optical storage devices, and solid-state storagedevices such as random access memory (“RAM”) or read-only memory(“ROM”), as well as removable media devices, memory cards, flash cards,etc.

Such devices also can include a computer-readable storage media reader,a communications device (e.g., a modem, a network card (wireless orwired), an infrared communication device, etc.), and working memory asdescribed above. The computer-readable storage media reader can beconnected with, or configured to receive, a computer-readable storagemedium, representing remote, local, fixed, and/or removable storagedevices as well as storage media for temporarily and/or more permanentlycontaining, storing, transmitting, and retrieving computer-readableinformation. The system and various devices also typically will includea number of software applications, modules, services, or other elementslocated within at least one working memory device, including anoperating system and application programs, such as a client applicationor Web browser. It should be appreciated that alternate embodiments mayhave numerous variations from that described above. For example,customized hardware might also be used and/or particular elements mightbe implemented in hardware, software (including portable software, suchas applets), or both. Further, connection to other computing devicessuch as network input/output devices may be employed.

Storage media and computer readable media for containing code, orportions of code, can include any appropriate media known or used in theart, including storage media and communication media, such as but notlimited to volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology for storage and/or transmissionof information such as computer readable instructions, data structures,program modules, or other data, including RAM, ROM, EEPROM, flash memoryor other memory technology, CD-ROM, digital versatile disk (DVD) orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed bythe a system device. Based on the disclosure and teachings providedherein, a person of ordinary skill in the art will appreciate other waysand/or methods to implement the various embodiments.

The specification and drawings are, accordingly, to be regarded in anillustrative rather than a restrictive sense. It will, however, beevident that various modifications and changes may be made thereuntowithout departing from the broader spirit and scope of the invention asset forth in the claims.

What is claimed is:
 1. A computer-implemented method for displayingvirtual content, comprising: capturing one or more first images using atleast one camera of a first computing device; determining a firstposition of the first computing device relative to a first referencepoint in a physical environment based at least in part on the one ormore first images, the first reference point being shared between thefirst computing device and a second computing device; receiving a secondposition of the second computing device relative to the first referencepoint; displaying on a first display screen of the first computingdevice a first perspective of a virtual environment that is based atleast in part on the first position and the second position; capturingone or more second images using the at least one camera; detecting afirst change in position of the first computing device relative to asecond reference point such that a first portion of the first computingdevice is closer to the second reference point and a second portion ofthe first computing device is further away from the second referencepoint based at least in part by comparing the one or more first imagesand the one or more second images, the second reference pointcorresponding to a head of a user within a field of view of the at leastone camera; displaying on the first display screen a second perspectiveof the virtual environment that simulates virtual environment appearingto remain stationary in space relative to the second reference pointduring the first change in position; sending to the second computingdevice information indicative of the first change in position to causethe second computing device to display on a second display screen of thesecond computing device a third perspective of the virtual environmentthat simulates a movement of the first computing device corresponding tothe first change in position and that simulates the virtual environmentappearing to remain stationary in space relative to the first referencepoint during the first change in position; capturing one or third imagesusing the at least one camera; detecting a second change in position ofthe first computing device relative to the second reference point suchthat the second portion of the first computing device is closer to thesecond reference point and the first portion of the first computingdevice is further away from the second reference point; displaying onthe first display screen a fourth perspective of the virtual environmentthat simulates the virtual environment appearing to remain stationary inspace relative to the second reference point during the second change inposition; and sending to the second computing device informationindicative of the second change in position to cause the secondcomputing device to display on the second display screen a fifthperspective of the virtual environment that simulates a movement of thefirst computing device corresponding to the second change in positionand that simulates the virtual environment appearing to remainstationary in space relative to the first reference point during thesecond change in position.
 2. The computer-implemented method of claim1, further comprising: capturing at least one first image, using atleast one front-facing camera of the first computing device, the firstimage including a first representation of the head of the user;determining the first position based at least in part on a first headposition represented in the first image; capturing at least one secondimage including a second representation of the head of the user; anddetermining the first change in position based at least in part on asecond head position represented in the second image.
 3. Thecomputer-implemented method of claim 1, further comprising: receiving,from an information source, data representing the virtual environment;and generating the first perspective based at least in part on the datarepresenting the virtual environment.
 4. The computer-implemented methodof claim 3, wherein the data representing the virtual environment isgenerated based at least in part on at least one of an image of at leasta portion of the physical environment or a model of at least a portionof an imaginary environment.
 5. A computer-implemented methodcomprising: determining a first position of a first computing devicerelative to a first reference point in a physical environment using oneor more sensors of the first computing device, the first reference pointbeing shared between the first computing device and a second computingdevice; receiving a second position of the second computing devicerelative to the first reference point; displaying on a first displayscreen of the first computing device a first view of a virtualenvironment that is based at least in part on the first position and thesecond position; detecting, using the one or more sensors, a firstchange in position of the first computing device relative to a secondreference point such that a first portion of the first computing deviceis closer to the second reference point and a second portion of thefirst computing device is further from the second reference point, thesecond reference point corresponding to a head of a user; displaying onthe first display screen a second view of the virtual environment thatsimulates the virtual environment appearing to be stationary relative tothe first reference point during the first change in position; sendingto the second computing device the first change in position to cause thesecond computing device to display on a second display screen of thesecond computing device a third view of the virtual environment thatsimulates a movement corresponding to the first change in position andthat simulates the virtual environment appearing to be stationaryrelative to the first reference point during the first change inposition; detecting, using the one or more sensors, a second change inposition of the first computing device relative to the second referencepoint such that the second portion of the first computing device iscloser to the second reference point and the first portion of the firstcomputing device is further from the second reference point; anddisplaying on the first display screen a fourth view of the virtualenvironment that simulates the virtual environment appearing to bestationary relative to the first reference point during the secondchange in position.
 6. The computer-implemented method of claim 5,further comprising: detecting a physical object within a field of viewof at least one rear-facing camera of the first computing device;determining a location in the virtual environment corresponding to wherethe physical object is located in the physical environment; anddisplaying a virtual representation of the physical object at thelocation in the virtual environment.
 7. The computer-implemented methodof claim 6, wherein the physical object includes a living entity, andwherein the virtual representation includes an avatar associated withthe living entity.
 8. The computer-implemented method of claim 5,further comprising: receiving, from an information source, datarepresenting the virtual environment; and generating the first view ofthe virtual environment based at least in part on the data representingthe virtual environment.
 9. The computer-implemented method of claim 8,wherein the data representing the virtual environment is generated basedat least in part on at least one of an image of at least a portion ofthe physical environment or a model of at least a portion of animaginary environment.
 10. The computer-implemented method of claim 5,further comprising: sending to the second computing device informationindicative of the second change in position to cause the secondcomputing device to display a fifth view of the virtual environment thatsimulates a movement corresponding to the second change in position andthat simulates the virtual environment appearing to be stationaryrelative to the first reference point during the second change inposition.
 11. The computer-implemented method of claim 5, wherein thefirst reference point corresponds to at least one of a ground, a wall, aceiling, or a physical object in the physical environment.
 12. Thecomputer-implemented method of claim 5, further comprising: determiningthat a confidence score associated with detecting the first change inposition is below a confidence threshold; and generating the second viewof the virtual environment based at least in part by blurring, at leastpartially, image data corresponding to the second view of the virtualenvironment.
 13. The computer-implemented method of claim 5, wherein thevirtual environment is selected from a plurality of virtual environmentsbased, at least in part, on one or more user-initiated instructions. 14.The computer-implemented method of claim 5, wherein the virtualenvironment includes one or more virtual objects associated with acontext of the virtual environment.
 15. The computer-implemented methodof claim 5, further comprising: receiving, from an information source,data representing the physical environment; and generating a virtualrepresentation for at least a portion of the physical environment basedat least in part on analyzing the data representing the physicalenvironment.
 16. The computer-implemented method of claim 5, furthercomprising: determining that the first view of the virtual environmenthas been displayed for a time period exceeding a specified time periodthreshold; and stopping display of the first view of the virtualenvironment.
 17. The computer-implemented method of claim 5, furthercomprising: determining that at least one of the second computing deviceor a second user is within a field of view of at least one camera of thefirst computing device; and generating a representation of at least oneof the second computing device or the second user as a portion of thefirst view of the virtual environment.
 18. A computer-implemented methodcomprising: determining a first position of a first computing devicerelative to a first reference point in a physical environment using oneor more sensors of the first computing device, the first reference pointbeing shared between the first computing device and a second computingdevice; receiving a second position of the second computing devicerelative to the first reference point; displaying on a first displayscreen of the first computing device a first view of a virtualenvironment based at least in part on the first position and the secondposition; determining, using the one or more sensors, a first change inposition of a second reference point relative to the first computingdevice such that a first portion of the first computing device is closerto the second reference point and a second portion of the firstcomputing device is further from the second reference point, the secondreference point corresponding to a head of a user; displaying on thefirst display screen a second view of the virtual environment thatsimulates the virtual environment appearing to be stationary relative tothe first reference point during the first change in position; sendingto the second computing device the first change in position to cause thesecond computing device to display on a second display screen of thesecond computing device a third view of the virtual environment thatsimulates a movement corresponding to the first change in position andthat simulates the virtual environment appearing to be stationaryrelative to the first reference point during the first change inposition; determining, using the one or more sensors, a second change inposition of the second reference point relative to the first computingdevice such that the second portion of the first computing device iscloser to the second reference point and the first portion of the firstcomputing device is further from the second reference point; anddisplaying on the first display screen a fourth view of the virtualenvironment that simulates the virtual environment appearing to bestationary relative to the first reference point during the secondchange in position.
 19. The computer-implemented method of claim 18,further comprising: increasing a scale associated with a view of thevirtual environment when a change in position of the head of the usercauses the head of the user to be closer to a front face of the firstcomputing device; or decreasing the scale associated with the view ofthe virtual environment when the change in the position of the head ofthe user causes the head of the user to be further away from the frontface of the first computing device.
 20. The computer-implemented methodof claim 18, further comprising: determining that at least one of thesecond computing device or a second user is within a field of view of atleast one camera of the first computing device; and generating arepresentation of at least one of the second computing device or thesecond user as a portion of the first view of the virtual environment.21. A system comprising: at least one processor; and at least one memorydevice including instructions that, upon being executed by the at leastone processor, cause the system to: determine a first position of afirst computing device relative to a first reference point in a physicalenvironment using one or more sensors of the first computing device, thefirst reference point being shared between the first computing deviceand a second computing device; receive a second position of the secondcomputing device relative to the first reference point; display on afirst display screen of the first computing device a first view of avirtual environment that is based at least in part on the first positionand the second position; detect, using one or more sensors of the firstcomputing device, a first change in position of the first computingdevice relative to a second reference point such that a first portion ofthe first computing device is closer to the second reference point and asecond portion of the first computing device is further from the secondreference point, the second reference point corresponding to a head of auser; display on the first display screen a second view of the virtualenvironment that simulates the virtual environment appearing to bestationary relative to the first reference point during the first changein position; send to the second computing device the first change inposition to cause the second computing device to display on a seconddisplay screen of the second computing device a third view of thevirtual environment that simulates a movement corresponding to the firstchange in position and that simulates the virtual environment appearingto be stationary relative to the first reference point in the physicalenvironment during the first change in position; detect, using the oneor more sensors, a second change in position of the first computingdevice relative to the second reference point such that the secondportion of the first computing device is closer to the second referencepoint and the first portion of the first computing device is furtherfrom the second reference point; and display on the first display screena fourth view of the virtual environment that simulates the virtualenvironment appearing to be stationary relative to the first referencepoint during the second change in position.
 22. The system of claim 21,wherein the one or more sensors include at least one of a front-facingcamera, a rear-facing camera, a light sensor, a gyroscope, anaccelerometer, a magnetometer, an electric compass, a global positioningsystem sensor, a radio signal multilateration sensor, or an audiocapture component.
 23. The system of claim 21, wherein the instructionscause the system to further: detect a physical object within a field ofview of at least one rear-facing camera of the first computing device;determine a location in the virtual environment corresponding to wherethe physical object is located in the physical environment; and generatea virtual representation of the physical object at the location in thevirtual environment.
 24. The system of claim 23, wherein the physicalobject includes a living entity, and wherein the virtual representationincludes an avatar associated with the living entity.
 25. Anon-transitory computer-readable storage medium including instructions,the instructions when executed by a processor of a first computingdevice causing the first computing device to: determine a first positionof the first computing device relative to a first reference point in aphysical environment using one or more sensors of the first computingdevice, the first reference point being shared between the firstcomputing device and a second computing device; receive a secondposition of the second computing device relative to the first referencepoint; display on a first display screen of the first computing device afirst view of a virtual environment that is based at least in part onthe first position and the second position; determine, using the one ormore sensors, a first change in position of a second reference pointrelative to the first computing device such that a first portion of thefirst computing device is closer to the second reference point and asecond portion of the first computing device is further from the secondreference point, the second reference point corresponding to a head of auser; display on the first display screen a second view of the virtualenvironment that simulates the virtual environment appearing to bestationary relative to the first reference point during the first changein position; send to the second computing device the first change inposition to cause the second computing device to display on a seconddisplay screen of the second computing device a third view of thevirtual environment that simulates a movement corresponding to the firstchange in position and that simulates the virtual environment appearingto be stationary relative to the first reference point during the firstchange in position; determine, using the one or more sensors, a secondchange in position of the second reference point relative to the firstcomputing device such that the second portion of the first computingdevice is closer to the second reference point and the first portion ofthe first computing device is further from the second reference point;and display on the first display screen a fourth view of the virtualenvironment that simulates the virtual environment appearing to bestationary relative to the first reference point during the secondchange in position.
 26. The non-transitory computer-readable storagemedium of claim 25, wherein the instructions cause the first computingdevice to further: increase a scale associated with a view of thevirtual environment when a change in position of the head of the usercauses the head of the user to be closer to a front face of the firstcomputing device; or decrease the scale associated with the view of thevirtual environment when the change in the position of the head of theuser causes the head of the user is to be further away from the frontface of the first computing device.